package com.ccp.dev.workflow.dao;

import com.ccp.dev.core.basic.base.IBaseMapper;
import com.ccp.dev.workflow.bpminterface.IActDefMapper;
import com.ccp.dev.workflow.model.BpmUserCondition;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * ClassDescribe:节点下的人员的配置规则 Dao类
 * @author :jiayueqiao
 * Date: 2019-05-15
 * Since:1
 */
public interface BpmUserConditionDao extends IBaseMapper<BpmUserCondition,String>, IActDefMapper {

    /**
     * 根据节点设置id查询
     * @param setId 节点设置id
     * @return list
     */
    List<BpmUserCondition> queryBySetId(String setId);

    List<BpmUserCondition> queryByProcDefIdForDel(String procDefId);



    /**
     * 查询用户设置
     * @param map
     * @return
     */
    List<BpmUserCondition> queryByProcDefIdOrParentId(Map<String, Object> map);

    /**
     * 根据流程定义ID和节点ID，获取用户规则设置
     * @param procDefId 流程定义ID
     * @param nodeId 节点ID
     * @return 用户规则设置列表
     */
    List<BpmUserCondition> queryByProcDefIdAndNodeId(@Param("procDefId") String procDefId, @Param("nodeId") String nodeId);

    /**
     * 根据流程定义ID、节点ID和类型，获取用户规则设置
     * @param params 参数集合
     * @return
     */
    List<BpmUserCondition> queryByProcDefIdAndNodeIdAndType(Map<String, Object> params);

    /**
     * 导出专用
     * @param procDefId
     * @return
     */
    List<BpmUserCondition> queryByProcDefIdExport(String procDefId);

    List<BpmUserCondition> queryByProcDefIdWithParentProcDefId(@Param("procDefId") String procDefId, @Param("parentProcDefId") String parentProcDefId);

    void updateSn(@Param("conditionId") String conditionId, @Param("sn") int sn);
}
